TEAM IRON
GIANT 1.0
Objective
The robot is required to move to five specified
points within the course while picking up as many golf balls as possible and
returning them to two separate chutes located near the beginning of the course.
Path Planning
In the field of path planning, there exist many
different approaches and algorithms in order to find the “right path”. We
decided to use the A* algorithm to create the fastest path with respect to the
current goal.
We used Manhattan distance to calculate the cost of
the path planning in order to avoid diagonal movements and running into
obstacles. The position of the robot itself is calculated by merging the data
from a camera system that was set up around the course with the dead reckoning
data from the robot sensors using Kalman Filtering. The A* algorithm is called
each time a target location has been reached or when a golf ball has been
successfully retrieved. Furthermore, every time a new obstacle is located, A*
is run when the obstacle is within the current path. This process repeats until
the robot has reached the final destination.
Obstacle Avoidance
In order to
locate obstacles, we used the data provided by the LADAR sensor mounted on the
top of the robot. The data acquired gave us precise information on the distance
of any object located in the range of the sensor. Knowing that the robot’s
movement will be constrained within the walls of the course, we filtered every
LADAR data that represented an x/y-coordinate within the course because this
means that an obstacle was “hit” by the laser beam of the respective angular
increment. To compensate for erroneous data, we split the course up in an 11 by
12 grid of tiles as indicated on the left. If the LADAR detects something
within one of these tiles, we increased a tally counter within this tile. Once
a certain threshold has been reached, the tile is declared to be an obstacle as
visualized on the left side.
Ball Collection
How does the robot know where the golf balls are?
We used the video input from the camera and filtered the incoming data to
register pixels in the HSV spectrum of the orange and blue golf balls. In order
to obtain the specific spectra, we took pictures of the golf balls prior to the
contest and adjusted the thresholds of the computer vision algorithm
accordingly. As for the actual ball retrieval, the robot abandons the current
path once a certain threshold of orange or blue pixels is exceeded. Then the
centroid of the largest detected golf ball is calculated and the location of
this centroid is fed back to the motor controller and a feedback control system
is used to steer the robot towards the golf ball. At a certain distance, the
golf ball disappears under the camera’s field of view and simple open loop
control is utilized to make the robot go just far enough to collect the golf
ball.
A simple gripper/trapper design is utilized to
securely retrieve the golf balls. Once the robot is close enough, the front
door of the gripper is opened and the inner flap is actuated in order to make
the golf ball goes into the orange or blue compartment.
The one gate system simplified the code for
control, and allowed us to more consistently collect the golf balls.
LabVIEW Interface
A LabVIEW
interface was used to visualize the course map and the data obtained from the
sensors. The interface depicted the actual course with grid spaces and the
robot’s trail of past positions including the current positions. It also
displayed the location of collected golf balls and the location of the
identified obstacles. The LabVIEW application communicates with the robot via a
wireless TCP/IP connection to provide real-time data.
The Team
MAXIMILIAN SIEB
·
Obstacle Detection
·
System Integration and Trouble Shooting
·
Ball Detection
ALEX KITE
·
Path Planning
·
Ball Collection
·
System Integration and Trouble Shooting
SEAN KELLEHER
·
Path Planning
·
CAD Design
·
System Integration
DANI LARKIN
·
LabVIEW Interface
·
Testing